package com.coin900.coin.service.fu;

import com.coin900.coin.persist.fu.FuCapitalDetailVO;
import com.coin900.coin.persist.fu.FuCapitalWithdrawVO;
import com.coin900.coin.persist.fu.FuUserWalletVO;
import com.value.mybatis.Pagination;

import java.util.List;
import java.util.Map;

/**
 * 资产提现
 *
 * @author shui
 * @create 2017-12-18
 */
public interface IFuCapitalWithdrawService {

    /**
     * 条件查询
     *
     * @param params
     * @return
     */
    List<FuCapitalWithdrawVO> loadFuCapitalWithdraw(Map<String, Object> params);

    /**
     * 分页查询
     *
     * @param page
     * @return
     */
    List<FuCapitalWithdrawVO> loadFuCapitalWithdrawForPage(Pagination page);

    void insertFuCapitalWithdraw(FuCapitalWithdrawVO fuCapitalWithdrawVO);

    /**
     * 新增提现记录，同时需要锁定用户钱包
     *
     * @param fuCapitalWithdrawVO
     * @param walletVO
     */
    void doCreateFuCapitalWithdraw(FuCapitalWithdrawVO fuCapitalWithdrawVO, FuUserWalletVO walletVO, FuCapitalDetailVO capitalDetailVO);

    void updateFuCapitalWithdraw(FuCapitalWithdrawVO fuCapitalWithdrawVO);

    /**
     * 资产提现审核
     *
     * @param fuCapitalWithdrawVO
     */
    void checkFuCapitalWithdraw(FuCapitalWithdrawVO fuCapitalWithdrawVO);

    void deleteFuCapitalWithdraw(FuCapitalWithdrawVO fuCapitalWithdrawVO);
}